package com.tedu.api.io;

import org.junit.Test;

import java.io.File;
import java.io.FileFilter;

/**
 * 作业1：listFiles(FileFilter接口)，使用实现类方式
 *                                 使用匿名内部类方式
 *       创建1次对象，使用匿名内部类
 *       语法：接口   接口引用=new 接口(){重写accept}
 * 作业2：删除 demo下有 abc 以及 bcd 的文件
 *     提示：demo/abc/bcd
 *     查 File构造器方法，从内部依次删除
 *     new File(parent,"路径")；  ---API介绍
 *     构造器：第一个参数：指定父级路径--确定不变--建议：使用传两个参数方法
 *
 */
public class HomeWork {
    @Test
    public void testDelete() {
        //demo/abc/bcd/demo.txt
        String parent = "demo" + File.separator;
        //abc/bcd/demo.txt   第一个子集：删除demo.txt
        String child = "abc" + File.separator + "bcd";
        String child1 = "abc";
        //创建4次File对象
        File file = new File(parent, child);
        file.delete();
        File file1 = new File(parent, child1);
        file1.delete();
        File file3 = new File(parent);
        file3.delete();

    }
    /**
     * 作业1：listFiles(FileFilter接口)，使用实现类方式
     *                                   使用匿名内部类方式
     *         创建1次对象，使用匿名内部类
     *         语法：接口   接口引用=new 接口(){重写accept}
     */
    public interface FilterAPI {
        public static void main(String[] args) {
            //获取"API"项目下:File构造器传入"."
            File file=new File("."){
                public boolean accept(File pathname) {
                    String name=pathname.getName();
                    System.out.println("获取名称是："+name);
                    return name.startsWith("s");
                }
            };
            File[] subs=file.listFiles();
            //⑤遍历数组
            for (int i=0;i< subs.length;i++){ //5.1数组下标
                //5.2数组名【下标】
                System.out.println("过滤后文件夹："+subs[i].getName());
            }
        }
    }



}
